/*
 * renderer.h
 *
 *  Created on: Feb 4, 2012
 *      Author: daniel
 */

#ifndef RENDERER_H_
#define RENDERER_H_

#include <stdbool.h>
#include <SDL.h>
#include <SDL_ttf.h>

#define RENDERER_HEIGHT 64

typedef struct {
	TTF_Font* large;
	TTF_Font* medium;
	TTF_Font* small;
} fonts_t;

typedef struct {
	char* tag;
	void (*create)(fonts_t* fonts);
	void (*update)(); // update the internal state of the renderer
	bool (*shouldrender)(); // this renderer has something that can be displayed
	bool (*needstorender)(); // this renderer has changed since the last time it rendered
	void (*render)(SDL_Surface* surface, unsigned delta); // render the renderer
	void (*dispose)(); // free all of the renderer resources
} renderer_t;

#endif /* RENDERER_H_ */
